<ui:composition
xmlns="http://www.w3.org/1999/xhtml"
xmlns:h="http://java.sun.com/jsf/html"
xmlns:f="http://java.sun.com/jsf/core"
xmlns:ui="http://java.sun.com/jsf/facelets"
xmlns:p="http://primefaces.org/ui"
xmlns:fn="http://java.sun.com/jsp/jstl/functions">

    <p:menubar style="width:auto;" >

        <p:menuitem value="Nuevo" icon="blank16" id="btnDatosNew"
                   action="#{poolBean.nuevo}"
                   process="@this"
                   update="tbdatos"  />

        <p:menuitem value="Guardar" icon="save16" id="btnDatosSave"
                    action="#{poolBean.guardar(false)}"                   
                    update="@form"  />

        <p:menuitem value="Guardar y Nuevo" icon="saveNew16" id="btnDatosSaveNew"
                    action="#{poolBean.guardar(true)}"                   
                    update="@form"  />

        <p:menuitem value="Activar" icon="ok16" id="activar"
                    action="#{poolBean.activarPool}"
                    process="@this"
                    update="@form"/>

        <p:menuitem value="Finalizar Pool" icon="conversor16" id="finalizar"
                    action="#{poolBean.finalizarPool}"
                    process="@this"
                    update="@form"
                    rendered="#{poolBean.pool.estado!='FinalizadoExito'}"/>

        <p:menuitem value="Anular Pool" icon="delete24" id="anular"
                    action="#{poolBean.anularPool}"
                    process="@this"
                    update="@form"
                    immediate="true"/>

        <!--
        <p:menuitem value="Reactivar Pool" id="reactivar"
                    action="#{poolBean.reActivar}"
                    process="@this"
                    update="@form"  />
        -->

        <p:menuitem value="Enviar Notific." id="pthread"
                    action="#{poolBean.enviarNotificaciones()}"
                    process="@this"
                    update="@form"  />
       

    </p:menubar>

    <p:messages id="mensajes" showDetail="true" autoUpdate="true" />
  
    <p:spacer height="10" style="width: 100%" />

    <p:tabView styleClass="contSolapas" >

        <p:tab id="datosGenerales" title="Datos generales">

            <h:panelGrid columns="4" cellpadding="3" columnClasses="colLabel,colDato,colLabel,colDato" >

                <h:outputText value="Número:" />
                <p:inputText value="#{poolBean.pool.nroPool}" size="6" rendered="#{poolBean.nuevo}"/>
                <p:outputLabel value="#{poolBean.pool.nroPool}" rendered="#{not poolBean.nuevo}" />
              

                <h:outputText value="Estado:" />
                <h:outputText value="#{poolBean.pool.estado}"  />

                <h:outputText value="Descripción:" />
                <p:inputText value="#{poolBean.pool.descripcion}"
                             size="40" >
                    <f:validateLength minimum="10" maximum="80"  />
                </p:inputText>

                <h:outputText value="Tipo de venta especial:" />
                <p:selectOneMenu id="tipoPool" value="#{poolBean.pool.tipo}"
                                 style="width:100px;"
                                 converter="#{conversoresPool.poolTipo}" >
                    <f:selectItems value="#{poolBean.tipos}" var="t" itemLabel="#{t.descrp}" itemValue="#{t}" />                    
                </p:selectOneMenu>

                <h:outputText value="Tipo de acceso:" />
                <p:selectOneMenu id="tipoAcceso" value="#{poolBean.pool.tipoAcceso}" style="width:100px;" >
                    <f:selectItem itemLabel="Público"     itemValue="P" />
                    <f:selectItem itemLabel="Restringido" itemValue="R" />
                </p:selectOneMenu>

                <h:outputText value="" />
                <h:outputText value="" />

                <h:outputText value="Disponible desde:"  />
                <p:calendar value="#{poolBean.pool.disponibleDesde}" pattern="dd/MM/yyyy HH:mm:ss" locale="es"
                            navigator="true" required="true" requiredMessage="Disponible desde es obligatoria"  />

                <h:outputText value="Disponible hasta:"  />
                <p:calendar value="#{poolBean.pool.disponibleHasta}" pattern="dd/MM/yyyy HH:mm:ss" locale="es"
                           navigator="true"  required="true" requiredMessage="Disponible desde es obligatoria"  />

                <h:outputText value="Cantidad publicada:"  />
                <p:inputText value="#{poolBean.pool.cantidadTotal}" required="true" style="text-align: right;"
                             requiredMessage="No ingreso cantidad publicada" >
                    <f:convertNumber pattern="0" />
                    <p:ajax event="keyup" update="cantDisponible" process="@this" listener="#{poolBean.actualizarCantidades}" />
                </p:inputText>

                <h:outputText value="Cantidad Disponible:" />
                <p:outputLabel id="cantDisponible" value="#{poolBean.pool.cantidadDisponible}" style="text-align: right; font-weight: bold;" >
                <f:convertNumber pattern="0" />
                </p:outputLabel>
               
                
                <h:outputText value="Unidad de medida"  />
                <p:inputText value="#{poolBean.pool.unidadMedida}" required="true" style="text-align: right;"
                             requiredMessage="No ingreso unidad de medida" >
                </p:inputText>
                
                <h:outputText value=""  />
                <h:outputText value=""  />
                

                <h:outputText value="Cant. Mínima Total"  />
                <p:inputText value="#{poolBean.pool.cantidadMinimaTotal}" required="true" style="text-align: right;"
                             requiredMessage="No ingreso cantidad publicada" >
                    <f:convertNumber pattern="0" />
                </p:inputText>

                <h:outputText value="Cant. Máxima Total:"  />
                <p:inputText value="#{poolBean.pool.cantidadMaximaTotal}" style="text-align: right;">
                    <f:convertNumber pattern="0" />
                </p:inputText>

                <h:outputText value="Tiempo Mín. de anulación:"  />
                <h:panelGroup>
                    <p:inputText value="#{poolBean.pool.tiempoMinimoAnulacion}" required="true" style="text-align: right;" >
                        <f:convertNumber pattern="0" />
                    </p:inputText>
                    Minutos
                </h:panelGroup>
                
                <h:outputText  value="Código de Acceso:"   />
                <h:panelGroup>
                    <h:outputText id="codigoAcceso" value="#{poolBean.pool.codigoAcceso}" style="text-align: right; font-weight: bold;" />
                    <p:commandButton icon="convert16"
                                     actionListener="#{poolBean.asignarCodigoAceso()}"
                                     process="@this"
                                     update="codigoAcceso" />
                </h:panelGroup>
                
                <h:outputText value="Path imagen inicio compra: " />
                <h:panelGroup>

                    <p:inputTextarea rows="3" cols="45" value="#{poolBean.pool.pathImagenInicioCompra}"
                                     required="true" requiredMessage="Path imagen inicio es obligatoria">
                        <p:ajax process="@this" event="keyup" update="imgPanel,imgIC" />
                    </p:inputTextarea>

                    <p:graphicImage id="imgIC" value="../resources/imagenes/imagenes.png" style="cursor:pointer" title="Custom Options"
                                    rendered="#{not empty poolBean.pool.pathImagenInicioCompra}" />
                    <p:overlayPanel id="imgPanel" for="imgIC" showEffect="blind" hideEffect="explode"
                                    showEvent="mouseover" hideEvent="mouseout"
                                    rendered="#{not empty poolBean.pool.pathImagenInicioCompra}" >

                        <p:graphicImage value="#{poolBean.pool.pathImagenInicioCompra}"
                                        width="400"/>
                    </p:overlayPanel>

                </h:panelGroup>

                <h:outputText value="" />
                <h:outputText value="" />

                <h:outputText value="Path imagen fin compra: " />
                <h:panelGroup>
                    <p:inputTextarea rows="3" cols="45" value="#{poolBean.pool.pathImagenFinCompra}"
                                     required="true" requiredMessage="Path imagen fin es obligatoria">
                        <p:ajax process="@this" event="keyup" update="imgPanelFC,imgFC" />
                    </p:inputTextarea>

                    <p:graphicImage id="imgFC" value="../resources/imagenes/imagenes.png" style="cursor:pointer" title="Custom Options"
                                    rendered="#{not empty poolBean.pool.pathImagenFinCompra}" />
                    <p:overlayPanel id="imgPanelFC" for="imgFC" showEffect="blind" hideEffect="explode"
                                    showEvent="mouseover" hideEvent="mouseout" >

                        <p:graphicImage value="#{poolBean.pool.pathImagenFinCompra}"
                                        rendered="#{not empty poolBean.pool.pathImagenFinCompra}"
                                        width="400"/>
                    </p:overlayPanel>
                </h:panelGroup>
                
                <h:outputText value="" />
                <h:outputText value="" />

                <h:outputText value="Path imagen pool finalizado: " />
                <h:panelGroup>
                    <p:inputTextarea rows="3" cols="45" value="#{poolBean.pool.pathImagenPoolFinalizado}"
                                     required="true" requiredMessage="Path imagen pool finalizado es obligatoria" >
                        <p:ajax event="keyup" process="@this" update="imgPanelPF,imgpf" />
                    </p:inputTextarea>

                    <p:graphicImage id="imgpf" value="../resources/imagenes/imagenes.png" style="cursor:pointer" title="Ver imagen"
                                    rendered="#{not empty poolBean.pool.pathImagenPoolFinalizado}" />
                    <p:overlayPanel id="imgPanelPF" for="imgpf" showEffect="blind" hideEffect="explode"
                                    showEvent="mouseover" hideEvent="mouseout"
                                    rendered="#{not empty poolBean.pool.pathImagenPoolFinalizado}" >

                        <p:graphicImage value="#{poolBean.pool.pathImagenPoolFinalizado}"
                                        width="400"/>
                    </p:overlayPanel>
                </h:panelGroup>

                <h:outputText value="" />
                <h:outputText value="" />

                <h:outputText value="Observaciones: " />
                <p:inputTextarea rows="3" cols="45" value="#{poolBean.pool.observaciones}" />

                <h:outputText value="" />
                <h:outputText value="" />

                <h:outputText value="Errores: " />
                <p:inputTextarea rows="3" cols="45" value="#{poolBean.pool.errores}" />

            </h:panelGrid>

        </p:tab>

        <!-- Productos -->
        <p:tab title="Productos" id="tabProductos" >

            <h:panelGrid columns="7" cellpadding="5" style="background-color: #cccccc;"
                         rendered="#{poolBean.puedoModificar}"
                         id="pgProducto" >

                <h:outputText value="Buscar" />
                <h:outputText value="Código" />
                <h:outputText value="Descripción" style="width: 150px;" />
                <h:outputText value="Cant. Mín." />
                <h:outputText value="Cant. Máx." />
                <h:outputText value="Cant. Ofrecida" />                
                <h:outputText value="Agregar" />

                <p:commandButton icon="find16" oncomplete="PF('dlg_producto').show()"  />

                <p:inputText value="-" size="15" readonly="true"
                             rendered="#{empty buscadorProductoBean.producto}" />

                <p:inputText value="#{buscadorProductoBean.producto.codigo}" size="15" readonly="true"
                             rendered="#{not empty buscadorProductoBean.producto}" />

                <p:inputText value="-" size="70" readonly="true"
                             rendered="#{empty buscadorProductoBean.producto}" />


                <p:inputText value="#{buscadorProductoBean.producto.descrp}"
                             size="40" readonly="true"
                             rendered="#{not empty buscadorProductoBean.producto}" />

                <p:inputText value="#{poolBean.itemProducto.cantidadMinima}" size="6" />
                <p:inputText value="#{poolBean.itemProducto.cantidadMaxima}" size="6" />
                <p:inputText value="#{poolBean.itemProducto.cantidadTotal}"  size="6" />

                <p:commandButton icon="add16"
                                 update="tblProductos,pgProducto"
                                 process="pgProducto"
                                 actionListener="#{poolBean.agregarProducto}" />
                
            </h:panelGrid>

            <p:dataTable id="tblProductos" value="#{poolBean.pool.productos}" var="p" style="padding-top: 10px;" >

                <p:column headerText="Orden">
                    <h:outputText value="#{p.orden}" />
                </p:column>

                <p:column headerText="Código">
                    <h:outputText value="#{p.producto.tippro}-#{p.producto.artcod}" />
                </p:column>
                <p:column headerText="Descripción">
                    <h:outputText value="#{p.producto.descrp}" />
                </p:column>
                                
                <p:column headerText="Cant. Mín.">
                    <h:outputText value="#{p.cantidadMinima}" >
                        <f:convertNumber pattern="0"/>
                    </h:outputText>
                </p:column>

                <p:column headerText="Cant. Máx.">
                    <h:outputText value="#{p.cantidadMaxima}" >
                        <f:convertNumber pattern="0"/>
                    </h:outputText>
                </p:column>
                
                <p:column headerText="C. Total">
                    <h:outputText value="#{p.cantidadTotal}" >
                        <f:convertNumber pattern="0"/>
                    </h:outputText>
                </p:column>
                
                <p:column headerText="C. Disp.">
                    <h:outputText value="#{p.cantidadDisponible}" >
                        <f:convertNumber pattern="0"/>
                    </h:outputText>
                </p:column>

                <p:column headerText="Borrar" style="text-align: center;" rendered="#{poolBean.puedoModificar}" >

                    <p:commandButton icon="delete16"
                                     actionListener="#{poolBean.eliminarProducto(p)}"
                                     update="tblProductos"
                                     process="@this" />

                </p:column>

            </p:dataTable>

        </p:tab>

        <p:tab title="Condiciones de Pago y Precios">

            <h:panelGrid columns="7" cellpadding="3" style="background-color: #cccccc;"
                         rendered="#{poolBean.puedoModificar}" width="1000"
                         id="pgCondiciones" >

                <h:outputText value="Condición de Pago" />
                <h:outputText value="Mostrar como" />
                <h:outputText value="Observaciones" />
                <h:outputText value="$ Normal s/IVA" />
                <h:outputText value="$ Especial s/IVA" />
                <h:outputText value="% I.V.A." />
                <h:outputText value="Agregar" />

                <p:selectOneMenu 
                    id="cndCondicion"
                    value="#{poolBean.itemCondicionPago.condicionDePago}"
                    converter="#{conversoresVentas.condicionDePago}"
                    filter="true" filterMatchMode="contains" >
                    
                    <f:selectItems value="#{poolBean.listaCondicionesDePago}" var="i" itemLabel="#{i.descrp}" itemValue="#{i}"/>
                </p:selectOneMenu>

                <p:selectOneMenu value="#{poolBean.itemCondicionPago.descripcion}"
                                 editable="true"  >

                    <f:selectItem itemLabel="Contado" itemValue="Contado"/>
                    <f:selectItem itemLabel="Cuenta Corriente" itemValue="Cuenta Corriente"/>
                </p:selectOneMenu>
                
                <p:inputTextarea value="#{poolBean.itemCondicionPago.observaciones}"
                                 rows="2" cols="35"/>

                <p:inputText id="cndPrecioNomal" value="#{poolBean.itemCondicionPago.precioNormal}" size="8" >
                    <f:convertNumber pattern="0.00" />
                </p:inputText>

                <p:inputText id="cndPrecioPool" value="#{poolBean.itemCondicionPago.precioPool}" size="8" >
                    <f:convertNumber pattern="0.00" />
                </p:inputText>

                <p:selectOneMenu id="ivaProd" value="#{poolBean.itemCondicionPago.ivaProduto}"
                                 style="width:100px;" >

                    <f:selectItem itemValue=""   itemLabel="Sel." />
                    <f:selectItem itemValue="21"   itemLabel="21 %" />
                    <f:selectItem itemValue="10.5" itemLabel="10.5 %" />
                    <f:selectItem itemValue="0"    itemLabel="0 %" />

                </p:selectOneMenu>

                <p:commandButton icon="add16"
                                 update="tblCondiciones,pgCondiciones"
                                 process="pgCondiciones"
                                 actionListener="#{poolBean.agregarCondicionPago}" />

            </h:panelGrid>

            <p:dataTable id="tblCondiciones" value="#{poolBean.pool.condiconesDePago}" var="c"
                         style="width: 1000px; padding-top: 10px;">

                <p:column headerText="Orden" >
                    <h:outputText value="#{c.orden}" />
                </p:column>

                <p:column headerText="Código">
                    <h:outputText value="#{c.condicionDePago.cndpag}" />
                </p:column>

                <p:column headerText="Descripción">
                    <h:outputText value="#{c.condicionDePago.descrp}" />
                </p:column>

                <p:column headerText="Mostrar como">
                    <h:outputText value="#{c.descripcion}" />
                </p:column>

                <p:column headerText="Observaciones">
                    <h:outputText value="#{c.observaciones}" />
                </p:column>

                <p:column headerText="$ Normal s/IVA">
                    <h:outputText value="#{c.precioNormal}" >
                        <f:convertNumber pattern="0.00" />
                    </h:outputText>
                </p:column>               

                <p:column headerText="$ Especial s/IVA">
                    <h:outputText value="#{c.precioPool}" >
                        <f:convertNumber pattern="0.00" />
                    </h:outputText>
                </p:column>

                <p:column headerText="% IVA" >
                    <h:outputText value="#{c.ivaProduto} " >
                        <f:convertNumber pattern="0.00" />
                    </h:outputText>
                    %
                </p:column>

                <p:column headerText="Borrar" style="text-align: center;" rendered="#{poolBean.puedoModificar}" >

                    <p:commandButton icon="delete16"
                                     actionListener="#{poolBean.eliminarCondicionPago(c)}"
                                     update="tblCondiciones"
                                     process="@this" />

                </p:column>
            </p:dataTable>

        </p:tab>

        <p:tab title="Bases y condiciones Adicionales">

            <h:panelGrid columns="2" cellpadding="5" style="background-color: #cccccc;"
                         rendered="#{poolBean.puedoModificar}"
                         id="pgBasesCondiciones" >

                <h:outputText value="Descripción" />
                <h:outputText value="Agregar" />

                <p:inputTextarea rows="2" cols="110" value="#{poolBean.itemBasesCondicionesAdicionales.descripcion}" />                
                <p:commandButton icon="add16"
                                 update="tblBasesCondiciones,pgBasesCondiciones"
                                 process="pgBasesCondiciones"
                                 actionListener="#{poolBean.agregarBasesCondAdicional}" />
                
            </h:panelGrid>

            <p:dataTable id="tblBasesCondiciones" value="#{poolBean.pool.baseCondicionesAdicionales}" var="c"
                         style="width: 500px; padding-top: 10px;">

                <p:column headerText="Número" style="width: 70px;">
                    <h:outputText value="#{c.nroitm}" >
                        <f:convertNumber pattern="0" />
                    </h:outputText>
                </p:column>

                <p:column headerText="Descripción" style="width: 300px;">
                    <h:outputText value="#{c.descripcion}" />
                </p:column>

                <p:column headerText="Borrar" style="text-align: center;" rendered="#{poolBean.puedoModificar}" >
                    <p:commandButton icon="delete16"
                                     actionListener="#{poolBean.eliminarBasesCondAdicional(c)}"
                                     update="tblBasesCondiciones"
                                     process="@this" />

                </p:column>
                
            </p:dataTable>

        </p:tab>

        <p:tab id="tbReserva" title="Reservas (#{fn:length(poolBean.pool.reservas)} )">
            <ui:include src="reservaPool.xhtml" />
        </p:tab>       

    </p:tabView>

</ui:composition>
